/**
 * @file user_led.h
 *
 */
#ifndef _USER_LED_H
#define _USER_LED_H

#ifdef __cplusplus
extern "C" {
#endif

#include "stdint.h"

#if CONFIG_IDF_TARGET_ESP32
#define GPIO_OUTPUT_IO_0    23
#define GPIO_RELAY_IO_1    12
#define GPIO_RELAY_IO_2    13
#define GPIO_RELAY_IO_3    14
#define GPIO_OUTPUT_PIN_SEL  ((1ULL<<GPIO_OUTPUT_IO_0) | (1ULL<<GPIO_RELAY_IO_1) | \
		(1ULL << GPIO_RELAY_IO_2) | (1ULL << GPIO_RELAY_IO_3))
#elif CONFIG_IDF_TARGET_ESP32S3
#define GPIO_OUTPUT_IO_0    1
#define GPIO_RELAY_IO_1    17
#define GPIO_RELAY_IO_2    18
#define GPIO_RELAY_IO_3    4
#define GPIO_OUTPUT_PIN_SEL  ((1ULL<<GPIO_OUTPUT_IO_0) | (1ULL<<GPIO_RELAY_IO_1) | \
		(1ULL << GPIO_RELAY_IO_2) | (1ULL << GPIO_RELAY_IO_3))
#endif


void set_led_status(uint8_t status);
uint8_t get_led_status(void);
void set_led_array_status(uint8_t index, uint8_t status);
uint8_t get_led_array_status(uint8_t index);
void set_relay_array_status(uint8_t index, uint8_t status);
uint8_t get_relay_array_status(uint8_t index);

void user_led_task(void *args);

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif /*_USER_LED*/
